package com.ruoyi.system.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 客户档案对象 sys_customer
 *
 * @author ruoyi
 * @date 2025-06-09
 */
public class SysCustomer extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 客户主键 */
    private Long customerId;

    /** 客户编码 */
    private String customerCode;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 性别 */
    @Excel(name = "性别")
    private Long sex;

    /** 校区 */
    @Excel(name = "校区")
    private Long campus;

    @Excel(name = "校区名称")
    private String campusName;

    /** 教育顾问主键 */
    @Excel(name = "教育顾问主键")
    private Long educationalAdviser;

    /** 教育顾问名称 */
    @Excel(name = "教育顾问名称")
    private String educationalAdviserName;

    /** 家庭住址 */
    @Excel(name = "家庭住址")
    private String address;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    /** 签约状态 */
    @Excel(name = "签约状态")
    private Long status;

    /** 固定电话 */
    @Excel(name = "固定电话")
    private String telephone;

    /** 联系人1 */
    @Excel(name = "联系人1")
    private String contactsOne;

    /** 联系人2 */
    @Excel(name = "联系人2")
    private String contactsTwo;

    /** 在读学校 */
    @Excel(name = "在读学校")
    private String school;

    /** 客户来源 */
    @Excel(name = "客户来源")
    private Long customerSource;

    /** 年级 */
    @Excel(name = "年级")
    private Long grade;

    /** 首次接触日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "首次接触日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date firstTime;

    /** 线索客户来源主键 */
    @Excel(name = "线索客户来源主键")
    private Long sourceOfLeadCustomersId;

    /** 线索客户来源名称 */
    @Excel(name = "线索客户来源名称")
    private String sourceOfLeadCustomersName;

    /** 来源小类主键 */
    @Excel(name = "来源小类主键")
    private Long sourceSubcategoryId;

    /** 来源小类名称 */
    @Excel(name = "来源小类名称")
    private String sourceSubcategoryName;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    /** 修改人 */
    @Excel(name = "修改人")
    private String updatedBy;

    /** 预约记录 */
    @Excel(name = "预约记录")
    private List<SysAppointmentRecord> appointmentRecordList;

    /** 追踪记录 */
    @Excel(name = "追踪记录")
    private List<SysStrack> strackList;

    /** 上传者 */
    @Excel(name = "上传者")
    private String upBy;

    @Excel(name = "辅导课程")
    private String course;

    public String getCourse() {
        return course;
    }

    public void setCourse(String course) {
        this.course = course;
    }

    public String getSourceOfLeadCustomersName() {
        return sourceOfLeadCustomersName;
    }

    public void setSourceOfLeadCustomersName(String sourceOfLeadCustomersName) {
        this.sourceOfLeadCustomersName = sourceOfLeadCustomersName;
    }

    public String getSourceSubcategoryName() {
        return sourceSubcategoryName;
    }

    public void setSourceSubcategoryName(String sourceSubcategoryName) {
        this.sourceSubcategoryName = sourceSubcategoryName;
    }

    public String getUpBy() {
        return upBy;
    }

    public void setUpBy(String upBy) {
        this.upBy = upBy;
    }

    public List<SysStrack> getStrackList() {
        return strackList;
    }

    public void setStrackList(List<SysStrack> strackList) {
        this.strackList = strackList;
    }

    public List<SysAppointmentRecord> getAppointmentRecordList() {
        return appointmentRecordList;
    }

    public void setAppointmentRecordList(List<SysAppointmentRecord> appointmentRecordList) {
        this.appointmentRecordList = appointmentRecordList;
    }

    public String getEducationalAdviserName() {
        return educationalAdviserName;
    }

    public void setEducationalAdviserName(String educationalAdviserName) {
        this.educationalAdviserName = educationalAdviserName;
    }

    public String getCampusName() {
        return campusName;
    }

    public void setCampusName(String campusName) {
        this.campusName = campusName;
    }

    public String getCustomerCode() {
        return customerCode;
    }

    public void setCustomerCode(String customerCode) {
        this.customerCode = customerCode;
    }

    public void setCustomerId(Long customerId)
    {
        this.customerId = customerId;
    }

    public Long getCustomerId()
    {
        return customerId;
    }

    public void setCustomerName(String customerName)
    {
        this.customerName = customerName;
    }

    public String getCustomerName()
    {
        return customerName;
    }

    public void setSex(Long sex)
    {
        this.sex = sex;
    }

    public Long getSex()
    {
        return sex;
    }

    public void setCampus(Long campus)
    {
        this.campus = campus;
    }

    public Long getCampus()
    {
        return campus;
    }

    public void setEducationalAdviser(Long educationalAdviser)
    {
        this.educationalAdviser = educationalAdviser;
    }

    public Long getEducationalAdviser()
    {
        return educationalAdviser;
    }

    public void setAddress(String address)
    {
        this.address = address;
    }

    public String getAddress()
    {
        return address;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }

    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }

    public void setTelephone(String telephone)
    {
        this.telephone = telephone;
    }

    public String getTelephone()
    {
        return telephone;
    }

    public void setContactsOne(String contactsOne)
    {
        this.contactsOne = contactsOne;
    }

    public String getContactsOne()
    {
        return contactsOne;
    }

    public void setContactsTwo(String contactsTwo)
    {
        this.contactsTwo = contactsTwo;
    }

    public String getContactsTwo()
    {
        return contactsTwo;
    }

    public void setSchool(String school)
    {
        this.school = school;
    }

    public String getSchool()
    {
        return school;
    }

    public void setCustomerSource(Long customerSource)
    {
        this.customerSource = customerSource;
    }

    public Long getCustomerSource()
    {
        return customerSource;
    }

    public void setGrade(Long grade)
    {
        this.grade = grade;
    }

    public Long getGrade()
    {
        return grade;
    }

    public void setFirstTime(Date firstTime)
    {
        this.firstTime = firstTime;
    }

    public Date getFirstTime()
    {
        return firstTime;
    }

    public void setSourceOfLeadCustomersId(Long sourceOfLeadCustomersId)
    {
        this.sourceOfLeadCustomersId = sourceOfLeadCustomersId;
    }

    public Long getSourceOfLeadCustomersId()
    {
        return sourceOfLeadCustomersId;
    }

    public void setSourceSubcategoryId(Long sourceSubcategoryId)
    {
        this.sourceSubcategoryId = sourceSubcategoryId;
    }

    public Long getSourceSubcategoryId()
    {
        return sourceSubcategoryId;
    }

    public void setUpdatedTime(Date updatedTime)
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime()
    {
        return updatedTime;
    }

    public void setUpdatedBy(String updatedBy)
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy()
    {
        return updatedBy;
    }

    @Override
    public String toString() {
        return "SysCustomer{" +
                "customerId=" + customerId +
                ", customerCode='" + customerCode + '\'' +
                ", customerName='" + customerName + '\'' +
                ", sex=" + sex +
                ", campus=" + campus +
                ", campusName='" + campusName + '\'' +
                ", educationalAdviser=" + educationalAdviser +
                ", educationalAdviserName='" + educationalAdviserName + '\'' +
                ", address='" + address + '\'' +
                ", phone='" + phone + '\'' +
                ", status=" + status +
                ", telephone='" + telephone + '\'' +
                ", contactsOne='" + contactsOne + '\'' +
                ", contactsTwo='" + contactsTwo + '\'' +
                ", school='" + school + '\'' +
                ", customerSource=" + customerSource +
                ", grade=" + grade +
                ", firstTime=" + firstTime +
                ", sourceOfLeadCustomersId=" + sourceOfLeadCustomersId +
                ", sourceOfLeadCustomersName='" + sourceOfLeadCustomersName + '\'' +
                ", sourceSubcategoryId=" + sourceSubcategoryId +
                ", sourceSubcategoryName='" + sourceSubcategoryName + '\'' +
                ", updatedTime=" + updatedTime +
                ", updatedBy='" + updatedBy + '\'' +
                ", appointmentRecordList=" + appointmentRecordList +
                ", strackList=" + strackList +
                ", upBy='" + upBy + '\'' +
                ", tutorial='" + course + '\'' +
                '}';
    }
}